Data communication networks may include various computers, servers, nodes, routers, switches, bridges, hubs, proxies, and other network devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as Internet Protocol packets, Ethernet Frames, data cells, segments, or other logical associations of bits/bytes of data, between the network elements by utilizing one or more communication links between the network elements. A particular protocol data unit may be handled by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
The various network elements on the communication network communicate with each other using predefined sets of rules, referred to herein as protocols. Different protocols are used to govern different aspects of the communication, such as how signals should be formed for transmission between network elements, various aspects of what the protocol data units should look like, how protocol data units should be handled or routed through the network by the network elements, and how information such as routing information should be exchanged between the network elements.
Ethernet is a well known networking protocol that has been defined by the Institute of Electrical and Electronics Engineers (IEEE) as standards 802.1 and 802.3. Conventionally, Ethernet has been used to implement networks in enterprises such as businesses and campuses, and other technologies have been used to transport network traffic over longer distances. As the Ethernet standards have evolved over time, Ethernet has become more viable as a long distance transport technology as well.
FIG. 6 shows several fields that have been added to the Ethernet standard over time. As shown in FIG. 6, the original Ethernet frame format specified by IEEE 802.1 includes a source address (C-SA) and a destination address (C-DA). IEEE 802.1Q added a Customer VLAN tag (C-Tag) which includes an Ethertype, Tag Control Information (TCI) information, and customer VLAN ID (C-VID). IEEE 802.1ad added a provider VLAN tag (S-Tag), which also includes an Ethertype, TCI information, and subscriber VLAN ID. The C-Tag allows the customer to specify a VLAN, while the S-Tag allows the service provider to specify a VLAN on the service provider's network for the frame.
The Ethernet standard has evolved to also allow for a second encapsulation process to take place as specified in IEEE 802.1ah. Specifically, an ingress network element to a service provider's network may encapsulate the original Ethernet frame with an outer MAC header including a destination address on the service provider's network (B-DA), a source address on the service provider's network (B-SA), a VLAN ID (B-VID) and a service instance tag (I-SID). The combination of the customer MAC addresses (C-SA and C-DA) and the I-SID are commonly referred to as the I-Tag.
The Ethernet Media Access Control (MAC) address forms part of the Ethernet header. In a given broadcast domain such as an Ethernet LAN, each MAC address is required to be unique and identifies a particular networking entity so that frames can be unambiguously forwarded to that particular entity.
The MAC addressing scheme is designed to enable the MAC addresses to be globally unique. Specifically, the IEEE specifies a numbering scheme in which universally administered addresses are assigned to particular devices by the manufacturer when the devices are created. In the IEEE numbering scheme, the first two bits are set aside for local/multicast frame indication, and the remainder of the first three octets of the MAC address are referred to as the Organizationally Unique Identifier (OUI), and identify the manufacturer. An OUI code-point is assigned by the IEEE to a manufacturer as needed. The last three bytes are assigned by the manufacturer to the devices as they are created and burned into the devices so that each device created by that manufacturer will have a unique MAC address.
In general, manufacturers have adhered to this numbering scheme to create devices that have globally unique permanent MAC addresses. However, unfortunately, not every manufacturer has adhered to this convention. Thus, devices with duplicate MAC addresses are starting to appear. This is problematic for normal bridging, which “learns” the forwarding path to a given MAC address by bridges that receive a frame each observing and storing the port of arrival for traffic from that MAC address, and hence if multiple identical addresses appear in a bridged domain, the frame forwarding for a given MAC address will always go to the most recent source of a frame with that MAC address as source.
Typically, duplicate MAC addresses is more a problem with low cost consumer appliances than it is with very expensive network routers, etc., that are deployed within a service provider's network. When such low cost appliances are networked via a broadband access network that preserves the Ethernet frame content, duplicate addresses can become a problem and interfere with the correct operation of the network. Accordingly, one way that has been proposed to handle the possibility of duplicate MAC addresses appearing on a broadcast domain is to perform MAC Network Address Translation (NAT) in the access node where the customer devices connect to the service provider's network. This process enables any duplicate MAC address to be translated to a carrier administered globally unique value so that duplicate addresses do not appear within the service provider's network.
Unfortunately, MAC NAT is not trivial. Particularly in IPv6, where the MAC address becomes part of the IP address, performing MAC NAT is complex. Additionally, keeping the MAC NAT functionality in the access node up to date, which includes the awareness of new protocols, may require significant maintenance and ongoing software development. Accordingly, it would be desirable to provide another way to accommodate duplicate MAC addresses in a communication network.